package com.niit.service.impl;

import com.niit.bean.R;
import com.niit.bean.ResultCode;
import com.niit.dao.ProductRepository;
import com.niit.entity.Product;
import com.niit.service.ProductService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.Date;

@Service
public class ProductServiceImpl implements ProductService {
    
    @Resource
    private ProductRepository productRepository;

    //获取全部的商品数据
    public R getProductList() {
        return R.ok().data("data",productRepository.findAll());
    }
    //根据id获取一个商品
    public R getProductById(Integer productId) {
        Product product= productRepository.findProductsByProductId(productId);
        if (product == null){
            return R.error().message("该商品不存在");
        }
        return R.ok().data("data",product);
    }
    //增加一个商品
    public R addNewProduct(Product product) {
        R r = getProductById(product.getProductId());
        if (r.getCode().intValue() == ResultCode.ERROR.intValue()){ //商品不存在，可以添加
            Product newProduct = productRepository.save(product);
            if (newProduct == null){
                return R.error().message("添加商品失败~");
            }
            return R.ok().message("添加商品成功~");
        }
        //如果商品已经存在，则不能再次添加
        return R.error().message("该商品已经存在~");
    }
    //更新商品
    public R updateProduct(Product product) {
        Integer timestamp = Long.valueOf(System.currentTimeMillis()/1000).intValue();
        product.setTimestamp(timestamp); //设置更新时间
        return R.ok().data("data",productRepository.save(product));
    }
    //删除商品
    public R deleteProduct(Integer productId) {
        productRepository.deleteProductByProductId(productId);
        return R.ok().message("删除商品成功~");
    }
}
